﻿using System.ComponentModel.Composition;
using System.Windows.Media;
using Microsoft.VisualStudio.Text.Classification;
using Microsoft.VisualStudio.Utilities;

namespace Marias.Extensions.Csharp {
    #region Format definition
    /// <summary>
    /// Defines an editor format for the Identifiers type that has a purple background
    /// and is underlined.
    /// </summary>
    [Export(typeof(EditorFormatDefinition))]
    [ClassificationType(ClassificationTypeNames = "ProcedureParameter")]
    [Name("ProcedureParameter")]
    [UserVisible(true)] //this should be visible to the end user
    [Order(Before = Priority.High)] //set the priority to be after the default classifiers
    internal sealed class IdentifiersFormat : ClassificationFormatDefinition {
        /// <summary>
        /// Defines the visual format for the "Identifiers" classification type
        /// </summary>
        public IdentifiersFormat() {
            this.DisplayName = "CSharp extension - Procedure parameter"; //human readable version of the name
            this.ForegroundColor  = Colors.BlueViolet;
            
        }
    }

    [Export(typeof(EditorFormatDefinition))]
    [ClassificationType(ClassificationTypeNames = "LocalVariable")]
    [Name("LocalVariable")]
    [UserVisible(true)] //this should be visible to the end user
    [Order(Before = Priority.High)] //set the priority to be after the default classifiers
    internal sealed class SymbolReferenceFormat : ClassificationFormatDefinition {
        /// <summary>
        /// Defines the visual format for the "Identifiers" classification type
        /// </summary>
        public SymbolReferenceFormat() {
            this.DisplayName = "CSharp extension - Local variable"; //human readable version of the name
            this.ForegroundColor = Colors.LimeGreen;
        }
    }






    #endregion //Format definition
}
